package Day12_String类;
/*

字符串直接赋值 和 newString的区别:
       一.  ==
              1.基本数据类型,比较数据的 值 是否相等
              2.引用数据类型,比较数据 地址 是否一样
       二.
              1.String str1 = "Hello";       直接赋值的字符串会存放在 方法区 的 字符串常量池 里面.
              2.String str = new String();   new出来的在堆内存

*/

public class String类01 {
    public static void main(String[] args) {
        //System.out.println(3==5);

        String str1 = "Hello"; //0x999  存放在方法区,字符串常量池
        String str2 = "Hello"; //0x999  存放在方法区,字符串常量池

        String str3 = new String("Hello"); //0x111  new出来的在堆内存
        String str4 = new String("Hello"); //0x222  new出来的在堆内存

        System.out.println("str1 == str2:" + (str1 == str2));  //true
        System.out.println("str3 == str4:" + (str3 == str4));  //false
        System.out.println("str1 == str3:" + (str1 == str3));  //false

        //字符串不能改变
        str2 = "World";
        System.out.println("str1=" + str1);  //Hello 0x999 hello字符串还在
        System.out.println("str2=" + str2);  //World 0x888 创建新字符串world

    }
}
